package com.swn.common.util;

import java.util.Properties;

import org.springframework.beans.factory.FactoryBean;

/**属性文件value加密-解密类
 * http://blog.chinaunix.net/uid-12348673-id-5211676.html
 * @author taozhaocai
 * @Date 2016年6月15日  下午5:59:05

 */
public class PropertiesEncryptFactoryBean implements FactoryBean<Properties> {   
	   
    private Properties properties = new Properties();   
       
    public Properties getObject() throws Exception {   
        return getProperties();   
    }   
   
    public Class<Properties> getObjectType() {   
        return Properties.class;   
    }   
   
    public boolean isSingleton() {   
        return true;   
    }   
   
    public Properties getProperties() { 
        return properties;   
    }   
    
    /**
	 * @param properties the properties to set
	 */
	public void setProperties(Properties properties) {
		this.properties = properties;
	}
 
    
	/**
     * 把该方法配置到了spring.xml配置到init-method
     *  void
     *
     * @Author taozhaocai
     * @Date 2016年6月17日 上午8:32:03
     */
    public void initPro(){
		/**通过db.properties加密***/
		/*String user = Base64Util.getFromBase64(properties.getProperty("user"));
		String password = Base64Util.getFromBase64(properties.getProperty("password"));
		properties.setProperty("user", user);
		properties.setProperty("password", password);*/
		/**通过二进制文件对数据库进行加密，用到了conf目录下的db文件。可以通过DbLinkUtil生成。***/
		this.properties = DbLinkUtil.decodeProperties();
	}

	

 
}   
